﻿Imports EVOLTA.Promocion.Bl.Bc
Imports EVOLTA.Promocion.Bl.Be
Imports EVOLTA.Promocion.Bl.Ctrl
Imports System.Windows.Forms
Imports System.Drawing.Printing
Imports System.IO
Imports System.Web.Services
Imports System.Web.Services.Protocols

Partial Class Seguimiento_seguimientpo
    Inherits System.Web.UI.Page

    Private separacionVenta As EseparacionVenta = Nothing
    Private separasionVentas As List(Of EseparacionVenta) = Nothing
    Private jsMensaje As String = Nothing
    Private seguimiento As List(Of EseparacionVenta) = Nothing

#Region "           Busqueda                                "
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.CacheControl = "no-cache"
        Response.AddHeader("Pragma", "no-cache")
        Response.Expires = -1
        '***********************************************************'
        If Not IsPostBack Then
            cargarEstadoTP()
            cargarEstadoInstancia()
            'cargarFormaPago()
        End If
    End Sub
    Protected Sub btnConsultar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnConsultar.Click
        cargarSeguimiento()
    End Sub

    Private Sub cargarEstadoInstancia()
        Dim Estado As New Ecommons
        selEstado.DataSource = Estado.estadoSeguimientoInstanciasTP
        selEstado.DataTextField = "descripcion"
        selEstado.DataValueField = "codigo"
        selEstado.DataBind()
        'selEstado.Items.Add(New ListItem("Pendiente", "0"))
        'selEstado.Items.Add(New ListItem("Culminado", "1"))
        selEstado.SelectedIndex = 0
    End Sub
    Private Sub cargarEstadoTP()
        Dim Eestado As New Ecommons
        selBanco.DataSource = Eestado.estadoSeguimientoTP
        selBanco.DataTextField = "descripcion"
        selBanco.DataValueField = "codigo"
        selBanco.DataBind()
    End Sub
    Private Sub cargarSeguimiento()
        Dim pSeparacionVenta As New EseparacionVenta

        With pSeparacionVenta
            .idProyecto = Me.Master.idProyecto
            .idEtapa = Me.Master.idEtapa
            .nroDocumento = txtDocumento.Text
            .fchInicio = txtfechaInicio.Text
            .fchFin = txtfechaFin.Text
            .EstadoTechoPropio = selBanco.Value
            .nroKardex = txtKardex.Text
            '.filtro = UCase(txtCliente.Text)
            '.idFormaPago = selFormaPago.Value  'MPE
        End With
        separasionVentas = RseparacionVenta.SeleccionarSeguimientoTP(Me.Master.descEmpresa, False, UCase(txtCliente.Text.Trim), pSeparacionVenta)
        Session("Seguimiento") = separasionVentas
        If Not separasionVentas Is Nothing Then
            gvwLista.DataSource = separasionVentas
            gvwLista.DataBind()
        End If
    End Sub
    Protected Sub gvwLista_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) _
    Handles gvwLista.RowCommand
        Select Case e.CommandName
            Case "Edit"
        End Select
    End Sub
    Protected Sub gvwLista_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
    Handles gvwLista.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
            e.Row.Attributes("OnClick") = Page.ClientScript.GetPostBackClientHyperlink(Me.gvwLista, "Select$" + e.Row.RowIndex.ToString)
            e.Row.Style.Add("cursor", "hand")
        End If
    End Sub
    Protected Sub gvwLista_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles gvwLista.RowEditing
        Dim id As Int32 = CType(CType(gvwLista.Rows(e.NewEditIndex).FindControl("lnkUnidadVenta"), LinkButton).Text, Int32)
        hdfIdSeparacionVenta.Value = id
        separasionVentas = Session("Seguimiento")
        Dim Lseguimiento = From v In separasionVentas _
                            Where v.idSeparacionVenta.ToString = id _
                            Select v

        lblNombreCliente.Text = CType(gvwLista.Rows(e.NewEditIndex).FindControl("lnkNombre"), LinkButton).Text
        lblMontoTP.Text = CType(gvwLista.Rows(e.NewEditIndex).FindControl("lnkMonto"), LinkButton).Text
        lblFechaInicioTP.Text = CType(gvwLista.Rows(e.NewEditIndex).FindControl("lnkFechaTechoPropio"), LinkButton).Text
        lblDNI.Text = CType(gvwLista.Rows(e.NewEditIndex).FindControl("lnkNroDocumento"), LinkButton).Text
        lblEstado.Text = CType(gvwLista.Rows(e.NewEditIndex).FindControl("lnkEstado"), LinkButton).Text
        separacionVenta = New EseparacionVenta
        With separacionVenta
            .idProyecto = Me.Master.idProyecto
            .idEtapa = Me.Master.idEtapa
            .idSeparacionVenta = id
        End With
        cargarInstancias(RseguimientoCreditoHip.SeleccionarTodoInstanciasTP(Me.Master.descEmpresa, separacionVenta), Me.gvwInstancias)

        'selInstancias.DataSource = RSeguimientoFin.SeleccionarTodo(Me.Master.descEmpresa, True, Lseguimiento.ElementAt(0).idEntidadFin)
        'selInstancias.DataTextField = "descSeguimiento"
        'selInstancias.DataValueField = "idSeguimiento"
        'selInstancias.DataBind()
    End Sub
    Private Sub cargarInstancias(ByVal pSeguimientoCreditoHip As List(Of EseguimientoCreditoHip), ByRef gvw As GridView)
        gvwInstancias.DataSource = pSeguimientoCreditoHip
        gvwInstancias.DataBind()
        upGvwInstancias.Update()
    End Sub
    Protected Sub btnExcelSeguimientoCreditos_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnExcelSeguimientoCreditos.Click
        seguimiento = Session("Seguimiento")
        If Not seguimiento Is Nothing Then
            Dim fileName As String = "Consulta{0}.xls"
            fileName = String.Format(fileName, DateTime.Now.ToShortDateString())
            Dim Response As HttpResponse = HttpContext.Current.Response
            Response.ContentType = "application/vnd.ms-excel"
            Response.Charset = "UTF-8"
            Response.ContentEncoding = System.Text.Encoding.Default
            Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName)
            Response.Write("Nro.")
            Response.Write(vbTab)
            Response.Write("Fecha Inicio")
            Response.Write(vbTab)
            Response.Write("Nombre del Cliente")
            Response.Write(vbTab)
            Response.Write("DNI")
            Response.Write(vbTab)
            Response.Write("Valor Venta")
            Response.Write(vbTab)
            Response.Write("Bono Techo Propio")
            Response.Write(vbTab)
            Response.Write("Hito")
            Response.Write(vbTab)
            Response.Write("Estado")
            Response.Write(vbTab)
            Response.Write("Observación")
            Response.Write(vbTab)
            Response.Write(vbCrLf)

            Dim value As String

            For Each unidad In seguimiento
                value = unidad.idSeparacionVenta
                Response.Write(value)
                Response.Write(vbTab)

                value = unidad.FechaTechoPropio
                Response.Write(value)
                Response.Write(vbTab)

                value = unidad.NombresCompletosCodSepInmueble
                Response.Write(value)
                Response.Write(vbTab)

                value = unidad.nroDocumento
                Response.Write(value)
                Response.Write(vbTab)

                value = unidad.valorVenta
                Response.Write(value)
                Response.Write(vbTab)

                value = unidad.MontoTechoPropio
                Response.Write(value)
                Response.Write(vbTab)

                value = unidad.DescEstadoTechoPropio
                Response.Write(value)
                Response.Write(vbTab)

                value = unidad.DescEstadoSeparacionTP
                Response.Write(value)
                Response.Write(vbTab)

                value = unidad.ObservacionesTP
                Response.Write(value)
                Response.Write(vbCrLf)
            Next
            Response.End()
        Else
            Dim jsMensaje As String = Nothing
            jsMensaje = "<script>javascript:alert(' La consulta no pudo ser procesada.  Por favor inténtelo de nuevo.');</script>)"
            Controls.Add(New LiteralControl(jsMensaje))
        End If
    End Sub
#End Region

#Region "           Registro                                "
    Private Sub cargarInstancias()
        'selInstancias.DataSource = Rnotaria.SeleccionarXEstado(True)
        'selInstancias.DataTextField = "descNotaria"
        'selInstancias.DataValueField = "idNotaria"
        'selInstancias.DataBind()
    End Sub
    Protected Sub gvwInstancias_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) _
    Handles gvwInstancias.RowCommand
        Select Case e.CommandName
            Case "Edit"
                txtIdSeguimiento.text = CType(e.CommandArgument, String)
        End Select
    End Sub
    Protected Sub gvwInstancias_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
    Handles gvwInstancias.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
            e.Row.Attributes("OnClick") = Page.ClientScript.GetPostBackClientHyperlink(Me.gvwInstancias, "Select$" + e.Row.RowIndex.ToString)
            e.Row.Style.Add("cursor", "hand")
        End If
    End Sub
    Protected Sub gvwInstancias_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) _
    Handles gvwInstancias.RowEditing
        Dim fecha As String = CType(gvwInstancias.Rows(e.NewEditIndex).FindControl("lnkFchModificacion"), LinkButton).Text
        txtNombreCliente.Text = lblNombreCliente.Text
        txtNombreCliente.ReadOnly = True
        txtNombreInstancia.Text = CType(gvwInstancias.Rows(e.NewEditIndex).FindControl("lnkSeguimiento"), LinkButton).Text
        txtNombreInstancia.ReadOnly = True
        txtObsInstancias.Value = CType(gvwInstancias.Rows(e.NewEditIndex).FindControl("lnkObservación"), LinkButton).Text
        Dim v_registrado As String
        v_registrado = CType(gvwInstancias.Rows(e.NewEditIndex).FindControl("lnkUsuario"), LinkButton).Text
        If v_registrado = "" Then
            txtRegistradoPor.Text = Me.Master.descUsuario
        Else
            txtRegistradoPor.Text = CType(gvwInstancias.Rows(e.NewEditIndex).FindControl("lnkUsuario"), LinkButton).Text
        End If
        txtRegistradoPor.ReadOnly = True
        'If fecha.Trim.Length > 0 Then
        'txtFchModificacionInstancia.Text = fecha.Trim
        'Else
        'txtFchModificacionInstancia.Text = ""
        'End If
        txtFchModificacionInstancia.Text = DateTime.Now.ToShortDateString
        txtFchModificacionInstancia.ReadOnly = True
        Dim v_estado As String
        v_estado = CType(gvwInstancias.Rows(e.NewEditIndex).FindControl("lnkIdEstado"), LinkButton).Text
        If Trim(v_estado) = "" Then
            selEstado.Value = 0
        Else
            selEstado.Value = CType(gvwInstancias.Rows(e.NewEditIndex).FindControl("lnkIdEstado"), LinkButton).Text
        End If
        'selEstado.Value = CType(CType(gvwInstancias.Rows(e.NewEditIndex).FindControl("lnkIdEstado"), LinkButton).CommandArgument, Int32)
        mpInstancias.Show()
    End Sub
    Protected Sub btnGrabarInstancias_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGrabarInstancias.Click
        Dim pSeguimientoCreditoHip As New EseguimientoCreditoHip
        With pSeguimientoCreditoHip
            .idProyecto = Me.Master.idProyecto
            .idEtapa = Me.Master.idEtapa
            .idSeparacionVenta = hdfIdSeparacionVenta.Value
            '.estadoCreditoHip = selInstancias.Value.ToString
            .fchModificacion = txtFchModificacionInstancia.Text
            .Observacion = txtObsInstancias.Value.Trim.ToUpper
            .idUsuario = Me.Master.idUsuario
            .estado = selEstado.Value.ToString
            .idSeguimiento = txtIdSeguimiento.Text
        End With
        Dim resultado As Boolean = RseguimientoCreditoHip.EditarInstanciasTechoPropio(Me.Master.descEmpresa, pSeguimientoCreditoHip)
        If resultado Then
            separacionVenta = New EseparacionVenta
            With separacionVenta
                .idProyecto = Me.Master.idProyecto
                .idEtapa = Me.Master.idEtapa
                .idSeparacionVenta = hdfIdSeparacionVenta.Value
            End With
            cargarInstancias(RseguimientoCreditoHip.SeleccionarTodoInstanciasTP(Me.Master.descEmpresa, separacionVenta), Me.gvwInstancias)
            mpInstancias.Hide()
            jsMensaje = "<script>javascript:showDivRegistro();javascript:alert(' El registro fue guardado satisfactoriamente.');</script>)"
            Controls.Add(New LiteralControl(jsMensaje))
        Else
            jsMensaje = "<script>javascript:showDivRegistro();javascript:alert('Los datos no se pudieron registrar.');</script>)"
            Controls.Add(New LiteralControl(jsMensaje))
        End If        
    End Sub
#End Region

End Class
